package web.fabrimind.tas.mapper;

import java.util.List;
import web.fabrimind.tas.domain.MaterialInboundApply;
import web.fabrimind.tas.domain.MaterialInboundApplyDetail;

/**
 * 物料入库申请Mapper接口
 *
 * @author ruoyi
 * @date 2025-04-03
 */
public interface MaterialInboundApplyMapper
{
    /**
     * 查询物料入库申请
     *
     * @param applyId 物料入库申请主键
     * @return 物料入库申请
     */
    public MaterialInboundApply selectMaterialInboundApplyByApplyId(Long applyId);

    /**
     * 查询物料入库申请列表
     *
     * @param materialInboundApply 物料入库申请
     * @return 物料入库申请集合
     */
    public List<MaterialInboundApply> selectMaterialInboundApplyList(MaterialInboundApply materialInboundApply);

    /**
     * 新增物料入库申请
     *
     * @param materialInboundApply 物料入库申请
     * @return 结果
     */
    public int insertMaterialInboundApply(MaterialInboundApply materialInboundApply);

    /**
     * 修改物料入库申请
     *
     * @param materialInboundApply 物料入库申请
     * @return 结果
     */
    public int updateMaterialInboundApply(MaterialInboundApply materialInboundApply);

    /**
     * 删除物料入库申请
     *
     * @param applyId 物料入库申请主键
     * @return 结果
     */
    public int deleteMaterialInboundApplyByApplyId(Long applyId);

    /**
     * 批量删除物料入库申请
     *
     * @param applyIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMaterialInboundApplyByApplyIds(Long[] applyIds);

    /**
     * 批量删除物料入库申请明细
     *
     * @param applyIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMaterialInboundApplyDetailByApplyIds(Long[] applyIds);

    /**
     * 批量新增物料入库申请明细
     *
     * @param materialInboundApplyDetailList 物料入库申请明细列表
     * @return 结果
     */
    public int batchMaterialInboundApplyDetail(List<MaterialInboundApplyDetail> materialInboundApplyDetailList);


    /**
     * 通过物料入库申请主键删除物料入库申请明细信息
     *
     * @param applyId 物料入库申请ID
     * @return 结果
     */
    public int deleteMaterialInboundApplyDetailByApplyId(Long applyId);

    /**
     * 查询用户(申请人和审核人)列表（不分页）
     */
    List<MaterialInboundApply> selectUserList(MaterialInboundApply materialInboundApply);

    /**
     * 查询供应商列表（不分页）
     */
    List<MaterialInboundApply> selectSupplierList(MaterialInboundApply materialInboundApply);
}




